<!--
 * @Descripttion: 后台管理系统
 * @version: 1.0
 * @Author: 狸猫
 * @Date: 2024-04-02 10:58:52
 * @LastEditors: 狸猫
 * @LastEditTime: 2024-04-03 09:37:05
-->
<script>
  import config from './config'
  import store from '@/store'
  import { getToken } from '@/utils/auth'

  export default {
    onLaunch: function() {
      this.initApp()
    },
    onShow() {
      // 检查小程序是否有新版本发布
      // #ifdef MP
      this.checkForUpdate()
      // #endif
    },
    methods: {
      // 初始化应用
      initApp() {
        // 初始化应用配置
        this.initConfig()
        // 检查用户登录状态
        //#ifdef H5
        // this.checkLogin()
        //#endif
      },
      initConfig() {
        this.globalData.config = config
      },
      checkLogin() {
        if (!getToken()) {
          this.$tab.reLaunch('/pages/login')
        }
      },

      // 检查小程序是否有新版本发布
      checkForUpdate(){
        const _this = this
        // 检查小程序是否有新版本发布
        const updateManager = uni.getUpdateManager();
        // 请求完新版本信息的回调
        updateManager.onCheckForUpdate((res) => {
          console.log('onCheckForUpdate-res',res);
          //检测到新版本，需要更新，给出提示
          if (res && res.hasUpdate) {
            uni.showModal({
              title: '更新提示',
              content: '检测到新版本，是否下载新版本并重启小程序？',
              success(res) {
                if (res.confirm) {
                  //用户确定下载更新小程序，小程序下载及更新静默进行
                  _this.downLoadAndUpdate(updateManager)
                }else{
                  // 若用户点击了取消按钮，二次弹窗，强制更新，如果用户选择取消后不需要进行任何操作，则以下内容可忽略
                  uni.showModal({
                    title: '温馨提示~',
                    content: '本次版本更新涉及到新的功能添加，旧版本无法正常访问的哦~',
                    confirmText: "确定更新",
                    cancelText:"取消更新",
                    success(res) {
                      if (res.confirm) {
                        //下载新版本，并重新应用
                        _this.downLoadAndUpdate(updateManager)
                      }
                    }
                  });
                }
              }
            });
          }
        });
      },
      // 下载小程序新版本并重启应用
      downLoadAndUpdate(updateManager){
        const _this = this
        uni.showLoading({ title: '小程序更新中' });

        // //静默下载更新小程序新版本
        updateManager.onUpdateReady((res) => {
          console.log('onUpdateReady-res',res);
          uni.hideLoading();
          //新的版本已经下载好，调用 applyUpdate 应用新版本并重启
          updateManager.applyUpdate()
        });

        // 更新失败
        updateManager.onUpdateFailed((res) => {
          console.log('onUpdateFailed-res',res);
          // 新的版本下载失败
          uni.hideLoading();
          uni.showModal({
            title: '已经有新版本了哟~',
            content: '新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~',
            showCancel: false
          });
        });
      }

    }
  }
</script>

<style lang="scss">
  @import '@/static/scss/index.scss';
  @import "@/uni_modules/uview-ui/index.scss";
  //@import "@/static/font-icon/iconfont.css";

  @import "@/static/iconfont/iconfont.css";
  /* flex 布局 */
  .flex{
  	/* #ifndef APP-PLUS-NVUE */
  	display:flex;
  	/* #endif */
  	flex-direction:row;
  }
  .flex-row{ flex-direction:row!important; }
  .flex-column{ flex-direction:column!important; }
  .flex-row-reverse{ flex-direction:row-reverse!important; }
  .flex-column-reverse{ flex-direction:column-reverse!important; }
  .flex-wrap{ flex-wrap:wrap;}
  .flex-nowrap{ flex-wrap:nowrap;}
  .justify-start{justify-content:flex-start;}
  .justify-end{justify-content:flex-end;}
  .justify-between{justify-content:space-between;}
  .justify-center{justify-content:center;}
  .align-center{ align-items: center; }
  .align-stretch{ align-items: stretch; }
  .align-start{ align-items: flex-start; }
  .align-end{ align-items: flex-end; }
</style>
